package BinaryTree;

//二叉树的最大深度: https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/
//时间复杂度: O(n)
public class MaxHeight {
	//利用递归的理解方法： 不去想递归怎么实现，而是其完成了什么功能
	//                     想信递归能帮我完成任务
	
	//显然，本题递归功能： 返回一颗树的最大深度
	//假如它能帮我完成，那么对应一个节点，我能拿到左右孩子的最大深度，
	
	//显然两者的最大值+当层节点即为该节点的最大深度
	public int maxDepth(TreeNode root) {
        if(root==null) {
        	return 0;
        }
        int leftHeight=maxDepth(root.left);
        int rightHeight=maxDepth(root.right);
        return 1+Math.max(leftHeight,rightHeight);
    }
}
